#ifndef IVSCONTROLLER_H
#define IVSCONTROLLER_H

#include <QObject>
#include "ivsmainwindow.h"
#include "ivsmodel.h"

#include "cvideoplayer.h"
#include "cintrudersdetector.h"
#include "crestrictedareasupervisor.h"
#include "ccamerastatemonitor.h"
#include "cpeopletracker.h"

class IVSController : public QObject
{
    Q_OBJECT
public:
    explicit IVSController(QObject *parent = 0);
    ~IVSController();
    void init();
    void ROI_add_point(int x, int y);
    void toogleMakingROI();
    const char* SourceName();

signals:

public slots:
     void run();
     void stop();

private:
    IVSMainWindow* ivsMainWindow;
    IVSModel* ivsModel;

private:
    bool isRunning;
    CVideoPlayer* videoPlayer;
    CIntrudersDetector* intruderDetector;
    CRestrictedAreaSupervisor* restrictedAreaSupervisor;
    CCameraStateMonitor* cameraStateMonitor;
    CPeopleTracker* peopleTraker;
};

#endif // IVSCONTROLLER_H
